iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
AI/ ML & Data

我的深度學習-從0開始實作物件偵測系列 第 6

【Day 6】YOLO的運作方式

  • 分享至 

  • xImage
  •  

一、前言

今天要來介紹的是YOLO的運作流程,經由前幾天對YOLO的原理以及每個版本的迭代有了些微的了解後,相信之後在實作的時候會更得心應手,能夠理解YOLO在物件偵測時的處理方式,那話不多說,讓我們開始吧!

二、運作流程

  1. 圖片輸入: 將輸入的圖片調整為固定大小,並輸入神經網路。
  2. 繪製標籤: 將輸入的圖片劃分為S * S的標籤,每個標籤負責檢測一個物體。
  3. 邊界框預測: 每個標籤預測多個邊界框,每個邊界框包括以下資訊:
  • 邊界框的中心座標(bx, by)
  • 邊界框的寬度和高度(bw, bh)
  • 邊界框的信心分數和類別預測被組合成一個最終的分數,可以告訴我們當前的邊界框包含特定物體的準確率。
    yolo-algorithm-1

圖片來源:Model. https://chih-sheng-huang821.medium.com/深度學習-物件偵測-you-only-look-once-yolo-4fb9cf49453c

三、損失函數

損失函數是訓練深度學習模型的關鍵組件,對於物件檢測模型如 YOLO(You Only Look Once)來說,損失函數同時考量定位、置信度和類別的準確性,確保模型能夠準確檢測並分類物件。以下是對損失函數的說明:

1. 定位誤差(Localization Loss)

定位誤差主要衡量預測的邊界框與真實邊界框之間的位置差異,通常使用 平方差誤差(Mean Squared Error, MSE) 來計算。具體來說,YOLO 訓練的邊界框包含 4 個參數:框的中心坐標(x, y)及框的寬度和高度(w, h)。這些值與真實框的值之間的差異會被最小化。

公式:
image

  • image 是調整定位誤差對總損失影響的權重。
  • image 是指示函數,當該網格單元有物體時為 1,否則為 0。
  • image 表示邊界框的中心坐標,image 表示邊界框的寬度和高度。
  • image 是預測邊界框的參數。

2. 置信度誤差(Confidence Loss)

置信度誤差用來衡量模型對預測框是否包含物體的置信度。YOLO 模型的預測包括置信度分數,它表示該框中是否有物體以及預測框與真實框重疊的程度(即 IoU,Intersection over Union)。YOLO 使用平方差來計算預測的置信度與真實的置信度之間的誤差。

置信度損失可分為兩部分:

  1. 有物體時的置信度損失
    image
  2. 無物體時的置信度損失
    image
  • image是置信度分數,表示框內包含物體的可能性乘以 IoU(即預測框與真實框的重疊程度)。
  • imageimage 是指示函數,分別表示該框是否包含物體。
  • image 是無物體置信度損失的權重,以防止負樣本過多對模型造成的影響。

3. 類別誤差(Classification Loss)

類別誤差用來衡量預測物體類別的準確性。YOLO 使用 交叉熵損失(Cross-Entropy Loss) 來衡量每個網格單元中預測類別與真實類別之間的差異。

公式:
image

  • image 是該網格單元中預測的類別概率。
  • image 是該網格單元的真實類別概率(通常是 one-hot 編碼的真實標籤)。
  • 類別誤差只在該網格單元有物體時計算。

4. YOLO 損失總和

YOLO 損失函數是上述三個損失的總和,用於同時優化定位、置信度和分類。總損失可以表示為:
image

這樣的設計使得 YOLO 模型能夠同時考慮物體的位置、物體存在的置信度及其類別標籤,達到有效的物體檢測效果。

介紹完運作流程以及損失函數後,下一篇我們來講評估模型的術語,那我們下篇見。

image


上一篇
【Day 5】YOLO的版本迭代介紹之 3
下一篇
【Day 7】初見NMS(Non-Maximum Suppression,非極大值抑制)
系列文
我的深度學習-從0開始實作物件偵測30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言